import java.util.ArrayList;
import java.util.List;

public class Solution842 {
    public List<Integer> splitIntoFibonacci(String num) {
        for (int i=1;i<Math.min(10,num.length());i++){
            for (int j=1;j<Math.min(10,num.length());j++){
                if (i+j>=num.length()){
                    continue;
                }
                List<Integer> list=new ArrayList<>();
                String a=num.substring(0,i);
                String b=num.substring(i,i+j);
                String temp=num.substring(i+j);
                list.add((int)Long.parseLong(a));
                list.add((int)Long.parseLong(b));
                while (true){
                    if (a.indexOf("0")==0 && a.length()>1 || b.indexOf("0")==0 && b.length()>1){
                        break;
                    }
                    long x=Long.parseLong(a);
                    long y=Long.parseLong(b);
                    long z=x+y;
                    if (x>Integer.MAX_VALUE || y>Integer.MAX_VALUE || z>Integer.MAX_VALUE){
                        break;
                    }
                    String c=String.valueOf(z);
                    list.add((int)z);
                    if (temp.indexOf(c)!=0){
                        break;
                    }else if (temp.equals(c)){
                        return list;
                    }else{
                        temp=temp.substring(c.length());
                        a=b;
                        b=c;
                    }
                }
            }
        }
        return new ArrayList<>();
    }

    public static void main(String[] args) {
        System.out.println(new Solution842().splitIntoFibonacci("1101111"));
    }
}
